using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using Entidades;
using System.Web.UI.WebControls;

public partial class ABMCategoria : System.Web.UI.Page
{

    private int? _IdCategoriaSeleccionada;
    public int? IdCategoriaSeleccionada
    {
        get
        {
            if (ViewState["Id"] != null)
                return Convert.ToInt32(int.Parse(ViewState["Id"].ToString()));

            return 0;
        }
        set
        {
            _IdCategoriaSeleccionada = value;
            ViewState["Id"] = value;
        }
    }



    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            traerCombo();
            if ((Request.QueryString["Ic"] != null))
            {
                IdCategoriaSeleccionada = (int?)Convert.ToInt32(Request.QueryString["Ic"].ToString());
            }
            traerCategotiaSeleccionada();
        }
    }

    private void traerTodos()
    {
        try
        {
            grdCategoria.DataSource = Categoria.TraerTodos();
            grdCategoria.DataBind();
        }
        catch (Exception ex)
        {
            grdCategoria.DataSource = null;
            grdCategoria.DataBind();
            LUM.lum.mensaje(ex.Message);
        }
    }
    protected void grdCategoria_RowDeleting(object sender, System.Web.UI.WebControls.GridViewDeleteEventArgs e)
    {
        try
        {
            Categoria Categoria = new Categoria(Convert.ToInt32(grdCategoria.DataKeys[e.RowIndex].Values["Id"].ToString()));
            Categoria.Baja();
        }
        catch (Exception ex)
        {
            LUM.lum.mensaje(ex.Message);
        }
    }
    protected void grdCategoria_SelectedIndexChanged(object sender, System.EventArgs e)
    {
        IdCategoriaSeleccionada = Convert.ToInt32(grdCategoria.SelectedDataKey.Values["Id"]);
        traerCategotiaSeleccionada();

    }

    private void blanquearCampos()
    {
        txtCategoriaModificar.Text = "";
        txtCategoriaAlta.Text = "";
    }


    private void traerCategotiaSeleccionada()
    {
        try
        {
            ucNavegacionCategoriasPadres1.Categoria = Convert.ToInt32(IdCategoriaSeleccionada);
            ucNavegacionSubcategorias1.Categoria = Convert.ToInt32(IdCategoriaSeleccionada);
            if (IdCategoriaSeleccionada != 0)
            {
                Categoria Categoria = new Categoria(Convert.ToInt32(IdCategoriaSeleccionada));
                txtCategoriaModificar.Text = Categoria.strCategoria;
                cboCategoriaPadre.SelectedValue = Convert.ToString(Categoria.IdCategoriaPadre);
            }
        }
        catch (Exception ex)
        {
            LUM.lum.mensaje(ex.Message);
        }
    }

    private void traerCombo()
    {
        cboCategoriaPadre.DataSource = Categoria.TraerTodos();
        cboCategoriaPadre.DataValueField = "Id";
        cboCategoriaPadre.DataTextField = "strCategoria";
        cboCategoriaPadre.DataBind();
        ListItem li = new ListItem("Categoria Principal", "0");
        cboCategoriaPadre.Items.Insert(0, li);
    }



    protected void linkCategoria_Click1(object sender, EventArgs e)
    {
        traerTodos();

    }

    protected void linkModificar_Click(object sender, EventArgs e)
    {
        try
        {
            Categoria categ = new Categoria();
            categ.strCategoria = txtCategoriaModificar.Text;
            categ.IdCategoriaPadre = Convert.ToInt32(cboCategoriaPadre.SelectedValue);
            categ.Id = Convert.ToInt32(IdCategoriaSeleccionada);
            categ.Modificar();
            traerCategotiaSeleccionada();
        }
        catch (Exception ex)
        {
            LUM.lum.mensaje(ex.Message);
        }
        finally
        {
            blanquearCampos();
        }
    }
    protected void linkAlta_Click1(object sender, EventArgs e)
    {
        try
        {
            Categoria Categoria = new Categoria();
            Categoria.strCategoria = txtCategoriaAlta.Text;
            Categoria.IdCategoriaPadre = Convert.ToInt32(IdCategoriaSeleccionada);
            Categoria.Alta();
            traerCategotiaSeleccionada();
        }
        catch (Exception ex)
        {
            LUM.lum.mensaje(ex.Message);
        }
        finally
        {
            blanquearCampos();
        }
    }
}
